41223110 cp2023

  • Home
    • SMap
    • reveal
    • blog
  • About
  • editing functions
  • w2
    • 請逐行詳細說明程式用法
  • w4
  • w5
  • w6
    • Flag
    • ROC單一菱形
    • GD 圖形庫中的函數
    • 說明基本 gd 繪圖
  • w7
    • China flag Program Usage
    • Korea flag Program Usage
  • w11
  • w12
  • w13
    • 心得
  • w15
    • 1
    • 2
  • Brython
China flag Program Usage << Previous Next >> w11

Korea flag Program Usage

// 繪製長方形
int rectangleX = 330;    // 長方形左上角的 X 座標
int rectangleY = 90;     // 長方形左上角的 Y 座標
int rectangleWidth = 140; // 長方形的寬度
int rectangleHeight = 170;// 長方形的高度

// 設定線的寬度
int lineWidth = 23;

// 繪製線段
gdImageSetThickness(im, lineWidth);
gdImageRectangle(im, rectangleX, rectangleY, rectangleX + rectangleWidth, rectangleY + rectangleHeight, black);

// 繪製斜線段
gdImageSetThickness(im, lineWidth);
gdImageLine(im, rectangleX, rectangleY, rectangleX + rectangleWidth, rectangleY + rectangleHeight, black);

// 繪製斜線段
gdImageSetThickness(im, lineWidth);
gdImageLine(im, rectangleX - 35, rectangleY - 10, rectangleX + rectangleWidth - 35, rectangleY + rectangleHeight - 10, black);

// 繪製斜線段
gdImageSetThickness(im, lineWidth);
gdImageLine(im, rectangleX - 70, rectangleY - 20, rectangleX + rectangleWidth - 70, rectangleY + rectangleHeight - 20, black);

這裡使用了 gdImageRectangle 函數來繪製一個填充的長方形。函數的原型如下:

  1. void gdImageRectangle(gdImagePtr im, int x1, int y1, int x2, int y2, int color);
  2. im 是一個指向 gdImage 結構的指針,表示畫布。
  3. (x1, y1) 是長方形左上角的座標。
  4. (x2, y2) 是長方形右下角的座標。
  5. color 是用來填充長方形的顏色。
  6. 在這裡,我們設定了 rectangleX 和 rectangleY 作為長方形的左上角座標,rectangleWidth 和 rectangleHeight 分別是長方形的寬度和高度。我們使用 gdImageRectangle 函數畫出了一個填充的長方形。接著使用 gdImageLine 函數分別繪製了兩條斜線段,使其看起來像是旗幟。如果需要調整長方形的位置或大小,可以修改相應的變數值。
gdImageLine(im, rightTopX + 70, rightTopY - 20, rightTopX, rightTopY, black);
  1. im: 表示目標圖像,也就是你要在其上進行繪製的圖像。
  2. rightTopX + 70, rightTopY - 20: 是線段的起點座標。rightTopX 和 rightTopY 是矩形右上角的座標,這裡將起點座標向右移動 70 單位,向上移動 20 單位。
  3. rightTopX, rightTopY: 是線段的終點座標,即矩形的右上角座標。
  4. black: 是線段的顏色。在 GD 庫中,顏色是使用 gdImageColorAllocate 函數來分配的。在這裡,black 表示事先分配好的黑色。
  5. 因此,這行程式碼的作用是在圖像上從右上角的某點 (rightTopX, rightTopY) 開始,畫一條斜向左上方的線段,並且這條線段的長度是 70 單位(水平方向),20 單位(垂直方向)。
FILE *outputFile = fopen("./../images/korea_flag.png", "wb");
if (outputFile == NULL) {
    fprintf(stderr, "Error opening the output file.\n");
    return 1;
}
gdImagePngEx(im, outputFile, 9);
fclose(outputFile);
gdImageDestroy(im);

這個程式使用GD圖形庫生成了一個帶有特定幾何圖案的圖像,並將其保存為PNG檔案。

gdImagePngEx(im, outputFile, 9);
  1. gdImagePngEx 函數是 GD 圖形庫中的一個函數,用來將圖像保存為 PNG 檔案。
  2. im 是指向 GD 圖片結構的指標,代表要保存的圖像。
  3. outputFile 是一個指向已打開的檔案的指標,代表 PNG 檔案的輸出位置。
  4. 9 是壓縮等級,範圍從 0 到 9,數字越大表示壓縮程度越高。在這裡,設置為 9 表示最高壓縮。
fclose(outputFile);
  1. fclose 函數用於關閉已打開的檔案。在這裡,它將 outputFile 這個檔案指標所代表的檔案關閉,確保檔案資源被正確釋放。
gdImageDestroy(im)
  1. gdImageDestroy 函數用於釋放 GD 圖片結構的記憶體。在這裡,它釋放了 im 指向的 GD 圖片結構所佔用的記憶體。這是為了避免內存洩漏,確保在程式執行完畢後釋放相應的資源。




China flag Program Usage << Previous Next >> w11

Copyright © All rights reserved | This template is made with by Colorlib